package com.thz.system.service.user;

import com.thz.common.dto.user.UserInfoDTO;
import com.thz.common.dto.ConversionRecordDTO;

import java.util.List;

/**
 * 用户信息服务接口
 * 
 * @author THZ
 * @date 2025
 */
public interface IUserInfoService {
    
    /**
     * 根据IP地址获取或创建用户
     * 如果用户不存在则自动创建
     * 
     * @param ipAddress IP地址
     * @return 用户信息
     */
    UserInfoDTO getOrCreateUser(String ipAddress);
    
    /**
     * 更新用户访问时间
     * 
     * @param ipAddress IP地址
     */
    void updateLastVisitTime(String ipAddress);
    
    /**
     * 增加用户转换次数
     * 
     * @param ipAddress IP地址
     */
    void incrementConversions(String ipAddress);
    
    /**
     * 获取用户的统一转换记录历史（包含所有类型的转换）
     * 
     * @param ipAddress IP地址
     * @param limit 数量限制
     * @return 转换记录列表
     */
    List<ConversionRecordDTO> getUserConversionHistory(String ipAddress, int limit);
    
    /**
     * 删除用户的转换记录
     * 
     * @param ipAddress IP地址
     * @param recordId 记录ID
     */
    void deleteUserConversion(String ipAddress, Long recordId);
    
    /**
     * 生成随机头像URL
     * 
     * @param ipAddress IP地址
     * @return 头像URL
     */
    String generateAvatarUrl(String ipAddress);
    
    /**
     * 上传用户头像
     * 
     * @param ipAddress IP地址
     * @param avatarFile 头像文件
     * @return 更新后的用户信息
     */
    UserInfoDTO uploadAvatar(String ipAddress, org.springframework.web.multipart.MultipartFile avatarFile);
}

